In recent years, in order to realize various web pages, web servers incorporate functions of managing sessions. According to this function, a user can not only browse the requested web page, but also log in his/her private page to refer to a history of previous accesses or to perform the following operation based on the history. Session management is realized by saving a session state which indicates progress of processing by the web server for every user.
For example, in JavaEE (Java Enterprise Edition: Java is a registered trademark), the session state is stored in a storage device of the web server and referred to as an Hyper Text Transfer Protocol (HTTP) session object by a servlet program operated on the web server.
When a website becomes large in scale, a single web server is insufficient in terms of processing capability, so that it is realized by a plurality of web servers. In this case, the HTTP requests, which are sequentially received, are processed by being distributed to respective web servers. Hence, a plurality of HTTP requests received from the same user may reach different web servers, respectively. In this case, a session state is stored only in the web server which has received the previous HTTP request, so that the session state cannot be referred to in the processing in accordance with the following HTTP request.
Meanwhile, the function is used in which the session state is shared by the plurality of web servers (see WebSphere Application Server Version 5.1 InfoCenter, Description of session management support, homepage URL “http://publib.boulder.ibm.com/infocenter/wasinfo/v5rl//topic/com.ibm.websphere.nd.doc/in fo/ae/ae/cprs_sesm.html”, searched on Jan. 10, 2007). In this function, however, the session state which should be shared among the web servers cannot be selected efficiently, and thus communication cost or processing may be increased. In addition, an applicable range of this function is limited; for example, it is not applicable to a system which employs a database as considered in “Brief description of DB2 Alphablox”, homepage URL http://www-06.ibm.com/jp/software/data/bi/alphablox/, searched on Jan. 10, 2007. Meanwhile, the technique is used which avoids this problem by storing the session state as a cookie or the like in a web browser of a terminal device, instead of the web server (see “Patterns of Enterprise Application Architecture,” by Martin Fowler, Amazon.com books introduction, homepage URL “http://www.amazon.com/exec/obidos/ASIN/0321127420”, searched on Jan. 10, 2007, and see also Japanese Unexamined Patent Publication (Kokai) No. 2004-206695).
In this technique, the session state stored in the terminal device is transmitted to the web server in association with the following HTTP request. This session state is referred to as an accompanying parameter to the HTTP request from a servlet program. However, many other parameters may be set to the HTTP request, so that it is difficult for an engineer to determine which parameter is the session state by referring to the program. This may lead to decrease in efficiency of development or maintenance of the servlet program. In addition, since an interface for accessing the session state also completely differs from that for an HTTP session object, it is also difficult to change a storage location of the session state from the web server to the terminal device due to specification change. Refer to “The DWH environment of Web 2.0 era!” Brief description of Inline Analytic realized by DB2 Alphablox, homepage URL “http://www-06.ibm.com/jp/domino01/mkt/dminfo.nsf/doc/00825839”, searched on Jan. 10, 2007.